package jp.co.menox.tmserver.service;

import java.util.Map;

import jp.co.menox.tmcommon.model.Status;
import jp.co.menox.tmserver.dao.LendingHistoryDao;
import jp.co.menox.tmserver.dao.StatusDao;

/**
 * ステータスマスタ関連サービス
 * @author
 *
 */
public class StatusService extends TmServerServiceBase<Status, StatusDao> {

    private LendingHistoryDao histDao;
    
    public StatusService() {
        dao = new StatusDao();
        histDao = new LendingHistoryDao();
    }

    
    /**
     * ステータスmapを取得する
     * @return
     */
    public Map<Integer, String> getStatusMap() {
        return dao.getStatusMap();
    }


    /**
     * 削除処理：　使用中の場合は削除不可
     * @param model
     */
    @Override
    public Status delete(Status model) {
        if (model == null) {
            return null;
        }
        
        if (histDao.getSizeInStatusType(model.getType()) > 0) {
            // 有効なレコードが存在する
            // TODO: 独自例外を作るか。また、メッセージを定義するか。
            throw new RuntimeException("「貸し借り履歴」で使用中のため削除できません。");
        }
        return super.delete(model);
    }

}
